package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;
import org.jsola.hr.entity.EmpSocItemDO;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * @author lyh
 */

@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "社保人员转换展示对象")
@Data
public class EmpSocTransformVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = "参保管理Id")
    private String empSocInfoId;

    @ApiModelProperty(notes = "社保业务类型")
    private String businessType;

    @ApiModelProperty(notes = "是否尽设置参保金额")
    private Boolean onlySocAmount;

    @ApiModelProperty(notes = "参保时间(参保管理)年")
    private String year;

    @ApiModelProperty(notes = "参保时间(参保管理)月")
    private String month;

    @ApiModelProperty(notes = "员工状态")
    private Integer empStatus;

    @ApiModelProperty(notes = "社保缴费类型")
    private Integer payCostType;

    @ApiModelProperty(notes = "员工Id")
    private String empId;

    @ApiModelProperty(notes = "人员社保状态")
    private Integer empSocStatus;

    @ApiModelProperty(notes = "人员医保状态")
    private Integer empMeStatus;

    @ApiModelProperty(notes = "人员公积金状态")
    private Integer empPfStatus;

    @ApiModelProperty(notes = "员工身份证")
    private String idCard;

    @ApiModelProperty(notes = "社保账号")
    private String socCard;

    @ApiModelProperty(notes = "公积金账号")
    private String pfCard;

    @ApiModelProperty(notes = "手机号")
    private String phone;

    @ApiModelProperty(notes = "参保停保时间,根据这个人的人员类型判断")
    private Date socOrStopSocDate;

    @ApiModelProperty(notes = "员工姓名")
    private String empName;

    @ApiModelProperty(notes = "工作性质Code")
    private Integer postType;

    @ApiModelProperty(notes = "人员类型")
    private String postTypeStr;

    @ApiModelProperty(notes = "参保方案名称")
    private String socProgName;

    @ApiModelProperty(notes = "参保城市名称")
    private String socCityName;

    @ApiModelProperty(notes = "参保时间(花名册)")
    private Date socDate;

    @ApiModelProperty(notes = "停保时间(花名册)")
    private Date stopSocDate;

    @ApiModelProperty(notes = "封存时间(花名册)")
    private Date sealedDate;

    @ApiModelProperty(notes = "个人社保费")
    private BigDecimal personalSocAmount;

    @ApiModelProperty(notes = "个人公积金")
    private BigDecimal personalPfAmount;

    @ApiModelProperty(notes = "公司社保费")
    private BigDecimal companySocAmount;

    @ApiModelProperty(notes = "公司公积金")
    private BigDecimal companyPfAmount;

    @ApiModelProperty(notes = "社保总累计")
    private BigDecimal socAmount;

    @ApiModelProperty(notes = "公积金总共累计")
    private BigDecimal pfAmount;

    @ApiModelProperty(notes = "个人社保子项列表")
    private List<EmpSocItemDO> empSocItemVOList;

    @ApiModelProperty(notes = "确认标识")
    private Boolean planFlag;

    @ApiModelProperty(notes = "服务费")
    private BigDecimal serviceCost;

    @ApiModelProperty(notes = "渠道名称")
    private String channelName;

    @ApiModelProperty(notes = "户口类型")
    private Integer regType;

    @ApiModelProperty(notes = "社保增员时间")
    private Date socIncreaseDate;

    @ApiModelProperty(notes = "医保增员时间")
    private Date meIncreaseDate;

    @ApiModelProperty(notes = "公积金增员时间")
    private Date pfIncreaseDate;

    @ApiModelProperty(notes = "签约主体")
    private String contractSubject;

    @ApiModelProperty(notes = "社保账号")
    private String socAccount;

    @ApiModelProperty(notes = "医保账号")
    private String meAccount;

    @ApiModelProperty(notes = "公积金账号")
    private String pfAccount;

}
